package com.mephi.oshs.model.style;

import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.Color;
import org.eclipse.swt.graphics.Font;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.widgets.Display;

/**
 * Класс описывающий стиль для узлов дерева ОШС,
 * которые будут содержать в себе элемент дерева ОШС.
 */
public class Style implements IStyle {

    private static final Display DISPLAY = Display.getDefault();

    private final Color backgroundColor;
    private final Color foregroundColor;
    private final Image image;
    private final Font font;

    // TODO:
    public Style(final Image image) {
        this.image = image;
        this.backgroundColor = DISPLAY.getSystemColor(SWT.COLOR_WHITE);
        this.foregroundColor = DISPLAY.getSystemColor(SWT.COLOR_WIDGET_FOREGROUND);
        this.font = DISPLAY.getSystemFont();
    }

    /**
     * {@inheritDoc}
     */
    @Override
    public boolean useDefaults() {
        return false;
    }

    /**
     * {@inheritDoc}
     */
    @Override
    public Color getForegroundColor() {
        return this.foregroundColor;
    }

    /**
     * {@inheritDoc}
     */
    @Override
    public Color getBackgroundColor() {
        return this.backgroundColor;
    }

    /**
     * {@inheritDoc}
     */
    @Override
    public Image getImage() {
        return this.image;
    }

    /**
     * {@inheritDoc}
     */
    @Override
    public Font getFont() {
        return this.font;
    }
}
